ALU (Arithmetic Logic Unit) এর ডিজাইন এবং কার্যপ্রণালী
ALU হলো একটি ডিজিটাল সার্কিট যা কম্পিউটারের প্রসেসরে গাণিতিক এবং লজিক্যাল কাজ সম্পন্ন করে। ALU এর ডিজাইন ও কার্যপ্রণালী এমনভাবে তৈরি করা হয় যাতে এটি কার্যকরভাবে নির্ধারিত অপারেশন সম্পন্ন করতে পারে। আসুন ALU এর ডিজাইন এবং কার্যপ্রণালী বিস্তারিতভাবে দেখি।
ALU এর ডিজাইন
ALU ডিজাইনের সময় বিভিন্ন লজিক গেট এবং ফ্লিপ-ফ্লপ ব্যবহার করে নির্দিষ্ট অপারেশন সম্পন্ন করার জন্য সার্কিট তৈরি করা হয়। ALU-এর প্রতিটি অংশ আলাদা আলাদা ফাংশন সম্পন্ন করতে সক্ষম, যেমন যোগ-বিয়োগ বা AND-OR অপারেশন।
ALU ডিজাইনের প্রধান উপাদানসমূহ
১. অ্যাডার/সাবট্র্যাক্টর ইউনিট:
- ALU-তে অ্যাডার এবং সাবট্র্যাক্টর ইউনিট একসাথে ডিজাইন করা হয়, যাতে এটি যোগ এবং বিয়োগ উভয় কাজ সম্পন্ন করতে পারে।
- ডিজাইনে একটি পূর্ণ অ্যাডার (Full Adder) ব্যবহার করা হয়, যা দুটি সংখ্যা যোগ করে ক্যারি আউটপুট উৎপন্ন করে। সাবট্র্যাকশন সম্পন্ন করার জন্য একটি ইনপুটকে কমপ্লিমেন্টে রূপান্তর করে বিয়োগ অপারেশন করা হয়।
২. লজিকাল অপারেশন ইউনিট:
- ALU-এর লজিক্যাল অপারেশন ইউনিট বিভিন্ন লজিক্যাল অপারেশন, যেমন AND, OR, NOT, XOR সম্পন্ন করে।
- প্রতিটি অপারেশনের জন্য আলাদা গেট ব্যবহার করে একাধিক অপারেশন সম্পন্ন করা হয় এবং একটি মাল্টিপ্লেক্সার ব্যবহার করে কোন অপারেশনটি প্রয়োজন হবে তা নির্বাচন করা হয়।
শিফটিং ইউনিট:
- ALU-তে শিফট অপারেশন সম্পন্ন করার জন্য শিফট রেজিস্টার ব্যবহার করা হয়। এটি ডেটা ডান বা বাম দিকে স্থানান্তর করতে পারে।
- শিফটিং অপারেশনের জন্য প্রয়োজনীয় বিট সরানোর প্রক্রিয়া ALU-তে ইনপুট আকারে দেওয়া হয় এবং আউটপুটে নির্ধারিত সংখ্যক বিট স্থানান্তরিত হয়।
কন্ডিশনাল লজিক ইউনিট:
- এই ইউনিটটি তুলনা অপারেশনের জন্য ব্যবহৃত হয়, যেমন দুটি ইনপুট সমান কিনা বা বড় বা ছোট কিনা তা নির্ধারণ।
- কন্ডিশনাল অপারেশন যেমন
A == B,A > B,A < Bইত্যাদি নির্ধারণ করতে AND, OR, NOT গেট ব্যবহার করে ফলাফল তৈরি করা হয়।
স্ট্যাটাস বা ফ্ল্যাগ রেজিস্টার:
- ALU-তে একটি ফ্ল্যাগ রেজিস্টার থাকে, যা অপারেশনের পরিণতি সম্পর্কে তথ্য ধারণ করে। সাধারণ ফ্ল্যাগগুলোর মধ্যে রয়েছে ক্যারি (Carry), জিরো (Zero), সাইন (Sign), এবং ওভারফ্লো (Overflow)।
- প্রতিটি অপারেশনের শেষে এই ফ্ল্যাগগুলো আপডেট করা হয়, যা পরবর্তী অপারেশন বা কন্ডিশন চেকের জন্য সহায়ক।
মাল্টিপ্লেক্সার (Multiplexer):
- ALU-তে মাল্টিপ্লেক্সার ব্যবহৃত হয় বিভিন্ন অপারেশন নির্বাচন করতে, যেমন অ্যাডিশন, সাবট্রাকশন, লজিক্যাল অপারেশন, শিফটিং ইত্যাদি।
- নিয়ন্ত্রণ সিগন্যালের মাধ্যমে মাল্টিপ্লেক্সার ALU-এর নির্দিষ্ট ফাংশন নির্বাচন করে এবং সেই অনুযায়ী আউটপুট প্রদান করে।
ALU এর কার্যপ্রণালী
ALU-এর কার্যপ্রণালীটি মূলত নিয়ন্ত্রণ সিগন্যালের উপর ভিত্তি করে কাজ করে। প্রতিটি কাজ একটি নির্দিষ্ট নিয়ন্ত্রণ কোড বা সিগন্যাল দ্বারা ALU-তে নির্দেশিত হয়। ALU একটি নির্দিষ্ট নিয়ন্ত্রণ কোড পেলে সেই অনুযায়ী কাজ সম্পন্ন করে।
ALU-এর কাজ করার ধাপসমূহ
১. নিয়ন্ত্রণ সিগন্যাল পাওয়া:
- CPU বা নিয়ন্ত্রণ ইউনিট থেকে ALU-তে একটি নিয়ন্ত্রণ সিগন্যাল পাঠানো হয়, যা নির্দেশ করে কোন অপারেশনটি সম্পন্ন করতে হবে (যেমন, ADD, SUB, AND, OR)।
২. ইনপুট ফিড করা:
- ALU দুটি ইনপুট গ্রহণ করে, যা সাধারণত A এবং B নামে পরিচিত। এই ইনপুটগুলোর উপর নির্দিষ্ট অপারেশন সম্পন্ন করা হয়।
অপারেশন নির্বাচন:
- নিয়ন্ত্রণ সিগন্যালের মাধ্যমে মাল্টিপ্লেক্সার নির্দিষ্ট অপারেশনটি নির্বাচন করে এবং সেই অনুযায়ী ALU-এর ফাংশন কাজ শুরু করে।
- উদাহরণস্বরূপ, ADD সিগন্যাল পেলে অ্যাডার ইউনিট কাজ করবে এবং INCREMENT সিগন্যাল পেলে শিফটিং ইউনিট কাজ করবে।
অপারেশন সম্পন্ন করা:
- ইনপুট ও নিয়ন্ত্রণ সিগন্যালের ভিত্তিতে ALU নির্দিষ্ট অপারেশন সম্পন্ন করে।
- গাণিতিক অপারেশনে ক্যারি বা বোরো প্রয়োজন হলে তা ফ্ল্যাগ রেজিস্টারে সংরক্ষিত হয়।
আউটপুট প্রাপ্তি ও ফ্ল্যাগ আপডেট:
- অপারেশন সম্পন্ন হলে ALU আউটপুট প্রদান করে এবং ফলাফলের উপর ভিত্তি করে ফ্ল্যাগ রেজিস্টার আপডেট করা হয়।
- উদাহরণস্বরূপ, অপারেশনের ফলাফল শূন্য হলে জিরো ফ্ল্যাগ
১হয় এবং ক্যারি থাকলে ক্যারি ফ্ল্যাগ১হয়।
ALU ডিজাইনের উদাহরণ
ধরা যাক, একটি ৪-বিট ALU ডিজাইন করা হয়েছে যা নিম্নলিখিত অপারেশনগুলো সম্পন্ন করতে পারে:
- ADD (যোগ)
- SUB (বিয়োগ)
- AND (লজিক্যাল AND)
- OR (লজিক্যাল OR)
- NOT (ইনভার্সন)
- SHIFT LEFT (বাম দিকে শিফট)
- SHIFT RIGHT (ডান দিকে শিফট)
এক্ষেত্রে, প্রতিটি অপারেশন সম্পন্ন করতে ৪-বিট ইনপুট এবং নিয়ন্ত্রণ কোড প্রয়োজন হবে। নির্দিষ্ট নিয়ন্ত্রণ কোড দিলে ALU সেই অনুযায়ী কাজ সম্পন্ন করবে।
সারসংক্ষেপ
ALU ডিজাইনে অ্যাডার/সাবট্র্যাক্টর ইউনিট, লজিক্যাল অপারেটর ইউনিট, শিফট রেজিস্টার, মাল্টিপ্লেক্সার এবং ফ্ল্যাগ রেজিস্টার ব্যবহার করা হয়। এর কার্যপ্রণালীতে নিয়ন্ত্রণ সিগন্যাল, ইনপুট ফিডিং, অপারেশন নির্বাচন, আউটপুট প্রদান, এবং ফ্ল্যাগ আপডেট অন্তর্ভুক্ত থাকে। এই উপাদানগুলো ALU-কে কার্যকরভাবে নির্দিষ্ট অপারেশন সম্পন্ন করতে সাহায্য করে, যা ডিজিটাল কম্পিউটিং সিস্টেমে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে।